// Funcions per tirar el dia del mes endavant o enrera
function creaDate() {
   fecha = new Date();
   fecha.setMonth( fecha.getMonth() + variableGlobalMesActual );//augmentem el mes
   totalDiasMesActual = Date.getDaysInMonth(fecha.getYear(), fecha.getMonth());
   showDivs();
}

// Funcions per tirar el dia del mes endavant o enrera
function canviaMesMenys() {
    variableGlobalMesActual--;
    creaDate();
    showDivs();
}

function canviaMesMes() {
    variableGlobalMesActual++;
    creaDate();
    showDivs();
}

// Funcio per a la creacio d events
function creaEvent(mail) {
    var peticion_http = null;
    //alert(mail);
    if(window.XMLHttpRequest) peticion_http = new XMLHttpRequest();
    else if(window.ActiveXObject) peticion_http = new ActiveXObject("Microsoft.XMLHTTP");
    peticion_http.onreadystatechange = divCreacioEvent;

    peticion_http.open("POST", "../../projecte-sintesi-dani-victor/site_media/php/crear_evento.php", true);
    peticion_http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");   
    peticion_http.send("mail="+mail);
    

    function divCreacioEvent() {   
        if(peticion_http.readyState == 4 && peticion_http.status == 200 ) {
            //hay que borrar el div si ya existe xD si no creamos un monton de miDiv
            try{
                cerrarDIV("crearEvento");
            }catch(err){
               console.log(err);
            }
            
            var miDiv = document.createElement("div");         
            miDiv.setAttribute("id", "crearEvento");
            miDiv.innerHTML = peticion_http.responseText;
            document.body.appendChild(miDiv);
            
            $(".data_event").datepicker({
                showOn: "both",
                buttonImageOnly: true,
                buttonImage: "../projecte-sintesi-dani-victor/site_media/img/calendar.png",
                dateFormat: "dd-mm-yy"
            });
        }
    }
}

function diaActualCalculat(x) {
    //el +1 es per el 0
    x++;
   

    var weekday=new Array(7);
    weekday[0]="Diumenge";
    weekday[1]="Dilluns";
    weekday[2]="Dimarts";
    weekday[3]="Dimecres";
    weekday[4]="Dijous";
    weekday[5]="Divendres";
    weekday[6]="Dissabte";
    var month=new Array();
    month[0]="Gener";
    month[1]="Febrer";
    month[2]="Març";
    month[3]="Abril";
    month[4]="Maig";
    month[5]="Juny";
    month[6]="Juliol";
    month[7]="Agost";
    month[8]="Septembre";
    month[9]="Octobre";
    month[10]="Novembre";
    month[11]="Decembre";

    cadena =  x  + '-' + month[fecha.getMonth()]  +   '-' + fecha.getFullYear();

    return cadena;
}

function crearNumerosaleatorio(arrayParaNumeros) {	/*Hay que crear previamente un array CON UN TAMAÑO de posiciones deseadas)*/
    
    for(var i = 0; i<arrayParaNumeros.length; i++) {
        var estat = true;
        var numeroRandActual = Math.floor(Math.random()*arrayParaNumeros.length); 
        for(var u = 0; u<arrayParaNumeros.length; u++) {
            if(numeroRandActual == arrayParaNumeros[u]) estat = false;
        }
        
        if(estat == true) arrayParaNumeros[i] = numeroRandActual;
        else i--;
    }
   
    return arrayParaNumeros;	/*Devolvemos el array final con los numeros aleatorios insertados*/
}

function showDivs() {
    document.getElementById('content').innerHTML ="";
    $(document).ready(function() {
        var numerosAleatorios = new Array(totalDiasMesActual);
        numerosAleatorios = crearNumerosaleatorio(numerosAleatorios);
        var arrayAmostrar = new Array();

        var xmlFinal = null;
        //retornar events als que t'han invitatt
        var xmlInvitat = retornaEvent();
        var peticion_http = null;
        if(window.XMLHttpRequest) peticion_http = new XMLHttpRequest();
        else if(window.ActiveXObject) peticion_http = new ActiveXObject("Microsoft.XMLHTTP");

        peticion_http.onreadystatechange = getResultatXML;
        peticion_http.open("POST", "./site_media/php/get_xml_month.php", false);
        peticion_http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        peticion_http.send("month="+fecha.getMonth());

        function getResultatXML() {
            if(peticion_http.readyState == 4) {
                if(peticion_http.status == 200) {
                    xmlFinal = peticion_http.responseXML;
                }
            }
        }
        
        var events = xmlFinal.getElementsByTagName("events")[0];
        var event = events.getElementsByTagName("event");
        var bandera = false;
        for(var i = 0; i < totalDiasMesActual; i++) {
            bandera = false;
            
            var  titolevent = "<p class='titolDia'><b>Dia " + (i + 1) + "</b></p> ";
            /*Part per mostrar els events propis*/
            titolevent += "<ul style='margin:0;padding:0;list-style-type:none'>";
            for(var x = 0; x<event.length; x++) {
                var dataevent = event[x].getElementsByTagName("dataevent")[0];
                var diaEvent = (dataevent.firstChild.nodeValue.toString()).split("-");                           
                if(diaEvent[1] - 1 == fecha.getMonth() && diaEvent[0] == (fecha.getYear() + 1900)){
                    if(diaEvent[2]-1 == i){
                        titolevent +=  "<li onclick='muestraEvento(this)' id='"+event[x].getElementsByTagName("id")[0].firstChild.nodeValue.toString()+"'>" +  event[x].getElementsByTagName("titolevent")[0].firstChild.nodeValue.toString()+ "</li>";
                        //alert(titolevent);
                        bandera = true;
                    }
                }
            }
            
            /*Events als que esta invitat**/
            var eventsInvitat = xmlInvitat.getElementsByTagName("eventsInvitat")[0];
            var eventInvitat = eventsInvitat.getElementsByTagName("event");
            
            for(var x = 0; x<eventInvitat.length; x++) {
                var dataevento = eventInvitat[x].getElementsByTagName("datainici")[0];
                var diaEvento = (dataevento.firstChild.nodeValue.toString()).split("-"); 
                if(diaEvento[1] - 1 == fecha.getMonth() && diaEvento[0] == (fecha.getYear() + 1900)){
                    if(diaEvento[2]-1 == i){
                        titolevent +=  "<li onclick='muestraEvento(this)' style='color:#60B9CE;' id='"+eventInvitat[x].getElementsByTagName("id")[0].firstChild.nodeValue.toString()+"'>" +  eventInvitat[x].getElementsByTagName("titolevent")[0].firstChild.nodeValue.toString()+ "</li>";
                        
                        bandera = true;
                    }
                }
            }
            
            
            titolevent += "</ul>";
            if(bandera == true) {
                cadena = titolevent;
               // alert(cadena);
                arrayAmostrar.push(cadena);
            }
            else {
                cadena = "<p class='titolDia'><b>Dia " + (i + 1) + "</b></p> ";;
                arrayAmostrar.push(cadena);
            }
        }

        
        
        for(var i = 0; i < numerosAleatorios.length ; i++) {
            miDiv=document.createElement("div");
            $(miDiv).attr("id", asignarID(arrayAmostrar[i]));
            $(miDiv).addClass("degradat");

            if(i == 0) {
                $(miDiv).css({
                    overflow: "auto",
                    float: "left",
                    marginLeft: getLlargaPixelsMes(fecha)+"px",
                    width: "100px",
                    height: "100px",

                    visibility: "hidden",
                    fontSize: "10px"
                });
            }
            else {
                $(miDiv).css({
                    overflow: "auto",
                    float: "left",
                    width: "100px",
                    height: "100px",

                    visibility: "hidden",
                    fontSize: "10px"
                });
            }
            $(miDiv).html(arrayAmostrar[i]).appendTo($("#content"));	/*Poner el HTLM deseado al DIV y finalmente adjuntar el DIV a 'content'*/
            var div = document.getElementById(asignarID(arrayAmostrar[i]));
            delayShow(div, numerosAleatorios[i]*125);
        }
    });
}

function muestraEvento(refli) {
    //alert(refli.id);
    
    var peticion_http = null;
    //alert(mail);
    if(window.XMLHttpRequest) peticion_http = new XMLHttpRequest();
    else if(window.ActiveXObject) peticion_http = new ActiveXObject("Microsoft.XMLHTTP");
    peticion_http.onreadystatechange = divEdicioEvent;

    peticion_http.open("POST", "../../projecte-sintesi-dani-victor/site_media/php/editar_evento.php", true);
    peticion_http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");   
    peticion_http.send("idevent="+refli.id);
    

    function divEdicioEvent() {   
        if(peticion_http.readyState == 4 && peticion_http.status == 200 ) {
            //hay que borrar el div si ya existe xD si no creamos un monton de miDiv
            try{
                cerrarDIV("editarEvento");
            }catch(err){
               console.log(err);
            }
            
            var miDiv = document.createElement("div");         
            miDiv.setAttribute("id", "editarEvento");
            miDiv.innerHTML = peticion_http.responseText;
            //alert(peticion_http.responseText);
            document.body.appendChild(miDiv);
            
            $(".data_event").datepicker({
                showOn: "both",
                buttonImageOnly: true,
                buttonImage: "../projecte-sintesi-dani-victor/site_media/img/calendar.png",
                dateFormat: "dd-mm-yy"
            });
        }
    }
}

//Funcio per retornar un xml amb events dels invitats
function retornaEvent() {
        var xmlFinal = null;
        var peticion_http = null;
        if(window.XMLHttpRequest) peticion_http = new XMLHttpRequest();
        else if(window.ActiveXObject) peticion_http = new ActiveXObject("Microsoft.XMLHTTP");

        peticion_http.onreadystatechange = getResultatXML2;
        peticion_http.open("POST", "./site_media/php/get_xml_month_invitat.php", false);
        peticion_http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        peticion_http.send("month="+fecha.getMonth());

        function getResultatXML2() {
            if(peticion_http.readyState == 4) {
                if(peticion_http.status == 200) {
                    xmlFinal = peticion_http.responseXML;
                }
            }
        }

    return xmlFinal;
}

function asignarID(unString) {
    try {
        var numero_devolver = unString.split("-", 1);
    }
    catch(err) {
        console.log(unString);
    }
    
    return numero_devolver;
}

// Veure la data actual
function diaActual() {
   // var d = new Date();
    //var totalDiasMes = Date.getDaysInMonth(fecha.getYear(), fecha.getMonth() );
    //var d = d.add(totalDiasMes - x).day();

    var weekday=new Array(7);
    weekday[0]="Diumenge";
    weekday[1]="Dilluns";
    weekday[2]="Dimarts";
    weekday[3]="Dimecres";
    weekday[4]="Dijous";
    weekday[5]="Divendres";
    weekday[6]="Dissabte";
    var month=new Array();
    month[0]="Gener";
    month[1]="Febrer";
    month[2]="Març";
    month[3]="Abril";
    month[4]="Maig";
    month[5]="Juny";
    month[6]="Juliol";
    month[7]="Agost";
    month[8]="Septembre";
    month[9]="Octobre";
    month[10]="Novembre";
    month[11]="Decembre";
    var x = document.getElementById("fechaActual");
    //cadena = weekday[d.getDay()] + '-' +  d.getDate()  + ' - ' + month[d.getMonth()] + '-' + d.getFullYear();
    cadena = " " +  month[fecha.getMonth()] + " de l'any " + (fecha.getYear() + 1900); 
    x.innerHTML = cadena ;

    return cadena;
}

function getStartingDayMonth(fecha) {
    var fecha_calcular = fecha;
    fecha_calcular.set({day: 1});
    return fecha_calcular.getDayName();
}

function getLlargaPixelsMes(fecha) {
    var fecha_calcular = getStartingDayMonth(fecha);
    var llargada_a_retornar = 0;
    
    switch(fecha_calcular) {
        case "Sunday":
            llargada_a_retornar = "600";
            break;
        
        case "Monday":
            llargada_a_retornar = "0";
            break;
        
        case "Tuesday":
            llargada_a_retornar = "100";
            break;
        
        case "Wednesday":
            llargada_a_retornar = "200";
            break;
        
        case "Thursday":
            llargada_a_retornar = "300";
            break;
        
        case "Friday":
            llargada_a_retornar = "400";
            break;
        
        case "Saturday":
            llargada_a_retornar = "500";
            break;
    }
    
    return llargada_a_retornar;
}

// Calcular cuanto tiempo de espera tiene que realizar cada DIV para despues mostrarse con el la funcion 'efecto'
function delayShow(divDeseado, tiempoMS) {
    setTimeout(function(){efecto(divDeseado)}, tiempoMS);
}

// Efecto jQuery para mostrar los DIV de cada dia
function efecto(divDeseado) {
    $(divDeseado).css("visibility","visible");	/*Cambiar la visualizacion del DIV apuntado a 'visible'*/
    $(divDeseado).css("display","none");	/*Ocultar al instante el div puesto a 'visible para seguidamene hacerlo aparecer con el efecto 'fadeIn()''*/
    $(divDeseado).fadeIn("slow");	/*Hacer aparecer el DIV con la funcion 'fadeIn()'*/
}

function canviaPassword() {
    document.getElementById('Password').readOnly = false;
    var passantic = document.getElementById('Password').value;
    //alert(passantic);
    var mifirstPass = prompt("Introdueix la nova paraula de pas","");
    if(mifirstPass != "" )var misecondPass = prompt("Introdueix de nou la paraula de pas","");
    
    if(mifirstPass == misecondPass && mifirstPass != "") {
        //document.getElementById('Password').value = mifirstPass;
        document.getElementById('Password').readOnly = true;
        //Fem el update password
         function getResultat() {
            if(peticion_Pass.readyState == 4) {
                if(peticion_Pass.status == 200) {
                   // alert("DFDGDGD");
                   alert(peticion_Pass.responseText);
                    
                }
            }
        }
        var peticion_Pass = null;
        if(window.XMLHttpRequest) peticion_Pass = new XMLHttpRequest();
        else if(window.ActiveXObject)peticion_Pass = new ActiveXObject("Microsoft.XMLHTTP");

        peticion_Pass.onreadystatechange = getResultat;
        peticion_Pass.open("POST", "./site_media/php/canviPassword.php", false);
        peticion_Pass.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        peticion_Pass.send("password="+mifirstPass);
    }
    else {
        if(mifirstPass == "")  alert("No pots deixar la paraula de pas en blanc");
        else alert("No ha introduit dues paraules de pas iguals");
        document.getElementById('Password').readOnly = false;
    }
    
}